In general, automated testing tools for testing database systems typically utilize test databases to test functionality of the database system. However, these test databases typically do not include any type of customer data. Instead, such testing tools generally use a data generation algorithm to generate random data based on the possible range of data allowed for the test database. Accordingly, this random data typically includes data from a large data domain.
Accordingly, these types of data generation tools generally do not generate data that can be used for testing database features requiring correlated or related sets of data. For example, consider the following database query: select count(*) from myTable where MyColumn=?. Assuming that the data type of MyColumn is an integer type, a conventional data generation tool would fill MyColumn with random integer data, and then use the same algorithm to generate random data at runtime when the query is submitted. Consequently, the chance that the data generated at runtime can be found within the data stored inside myTable is very low. This can also occur in other situations, such as when attempting to test database features associated with joined tables or queries in stored procedures. Therefore, such dynamically generated queries typically return an empty result set, and limit the quality of testing possible.